//
//  RBGListeTypeAnnonceController.m
//  BateauGenerique
//
//  Created by Kevin De Jesus Ferreira on 27/05/2014.
//  Copyright (c) 2014 Kevin De Jesus Ferreira. All rights reserved.
//

#import "RBGListeTypeAnnonceController.h"
#import "RBGNavigationBar.h"
#import "RBGAppDelegate.h"
#import "UIImageView+WebCache.h"
#import "RBGColorManager.h"
#import "RBGAnnoncesController.h"
#import "TypeAnnonce.h"
#import "Constantes.h"
#import "RBGServiceMenu.h"

@interface RBGListeTypeAnnonceController ()<RBGServiceMenuDelegate>{
    RBGAppDelegate *appDelegate;
    NSArray * menu;
    float ancienY;
    RBGServiceMenu * serviceMenu ;

}


@end

@implementation RBGListeTypeAnnonceController


- (void)viewDidLoad
{
    [super viewDidLoad];
    [self charger];
    [self remplir];
    [self chargerCouleur];
   // [self positionnerVue];
    
}


-(void) charger
{
 
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
    ancienY = 0;
    
    [self.scrollView setScrollEnabled:YES];
    appDelegate = (RBGAppDelegate *)[[UIApplication sharedApplication] delegate];
    
    [self viewBlockGone:self.allBlocs];
    
    serviceMenu = [[RBGServiceMenu alloc]init];
    serviceMenu.delegate = self;
    [serviceMenu getMenu];
    
    
}


-(void) remplir
{
    
    [self.fond setImageWithURL:[NSURL URLWithString:appDelegate.donnees.parametres.imageFond]];
    
}


-(void) positionnerVue
{
    
    UIView *viewAnnonce ;
    for(TypeAnnonce *typeAnnonce in menu){
        
        viewAnnonce = [self viewWithTypeAnnonce:typeAnnonce];
        // On place en dessous de l'ancienne
        [viewAnnonce setFrame:CGRectMake(viewAnnonce.frame.origin.x, ancienY, viewAnnonce.frame.size.width, viewAnnonce.frame.size.height)];
        ancienY += viewAnnonce.frame.size.height + 10;
    }
    
   [self.scrollView setFrame:CGRectMake(0, 0, self.scrollView.frame.size.width, self.scrollView.frame.size.height)];
}


-(void) chargerCouleur
{

    [RBGNavigationBar customNavigationBar:self.navigationController andTitle:@"Type" andBackgroundColor:appDelegate.donnees.parametres.backgroundColorUn andTextColor:appDelegate.donnees.parametres.fontColorUn];
    
    [RBGColorManager changeTextColorSubViews:self.scrollView withColor:appDelegate.donnees.parametres.fontColorDeux];
    
    [RBGColorManager changeImageColorSubViews:self.scrollView withColor:appDelegate.donnees.parametres.fontColorDeux];
}


-(UIView *) viewWithTypeAnnonce:(TypeAnnonce *)typeAnnonce{
    
    
    if([typeAnnonce.intitule isEqualToString:@"Bateau à moteur"]){
        
        [self.titreBateauMoteur setText:[NSString stringWithFormat:@"Bateaux à Moteurs (%@)",typeAnnonce.nb]];
        return self.blocBateauMoteur;
    }
    
    if([typeAnnonce.intitule isEqualToString:@"Voilier"]){
        [self.titreVoilier setText:[NSString stringWithFormat:@"Voiliers (%@)",typeAnnonce.nb]];
        return self.blocVoilier;
    }
    
    if([typeAnnonce.intitule isEqualToString:@"Pneuma./Semi-Rigides"]){
        [self.titreSemiRigide setText:[NSString stringWithFormat:@"Semi-rigides (%@)",typeAnnonce.nb]];
        return self.blocSemiRigide;
    }
    
    if([typeAnnonce.intitule isEqualToString:@"Moteur Bateau"]){
        [self.titreMoteur setText:[NSString stringWithFormat:@"Moteurs HB/IB (%@)",typeAnnonce.nb]];
        return self.blocMoteur;
    }
    
    if([typeAnnonce.intitule isEqualToString:@"Place de port"]){
        [self.titrePlacePort setText:[NSString stringWithFormat:@"Place de ports (%@)",typeAnnonce.nb]];
        return self.blocPlacePort;
    }
    
    if([typeAnnonce.intitule isEqualToString:@"Remorques"]){
        [self.titreRemorque setText:[NSString stringWithFormat:@"Remorques (%@)",typeAnnonce.nb]];
        return self.blocRemorque;
    }
    
    if([typeAnnonce.intitule isEqualToString:@"Accessoires & Divers"]){
        [self.titreAccessoire setText:[NSString stringWithFormat:@"Accessoires & Divers (%@)",typeAnnonce.nb]];
        return self.blocAccessoire;
    }
    
    if([typeAnnonce.intitule isEqualToString:@"Location"]){
        [self.titreLocation setText:[NSString stringWithFormat:@"Location (%@)",typeAnnonce.nb]];
        return self.blocLocation;
    }
    
    return  nil;
}

-(void) viewBlockGone:(UIView *)views{
    
    for(UIView * view in [views subviews]){
        
        [self viewGone:view];
    }
}


-(void) viewGone:(UIView *)view{
    
    [view setFrame:CGRectMake(view.frame.origin.x, -10000, view.frame.size.width, view.frame.size.height)];
}

// ################################### Action sur la vue #######################################

- (IBAction)changeClearColor:(UIButton *)sender
{
    [sender setBackgroundColor:[UIColor clearColor]];
    
}
- (IBAction)changeColor:(id)sender{
    
    [sender setBackgroundColor:appDelegate.donnees.parametres.backgroundColorDeux];
}


-(IBAction)lancerTypeAnnonce:(id)sender{
    
    RBGAnnoncesController *controller = [[RBGAnnoncesController alloc] initWithNibName:@"RBGAnnoncesController" bundle:nil];
    
    
    // Lancer la liste d'annonces avec le type ;)
    [self changeClearColor:sender];
    
    [appDelegate effacerDonnees];
    controller.typeAnnonce = [sender tag] ;
    controller.url = [self urlWithType:[sender tag]];
    controller.nbAnnonce = [self nbAnnoncesWithType:[sender tag]];

    [self.navigationController pushViewController:controller animated:YES];
    
    
}


-(NSString *) urlWithType:(int) typeAnnonce
{

    NSString * name = [self nameType:typeAnnonce];

    for(TypeAnnonce * annonce in menu)
        if([annonce.intitule isEqualToString:name])
            return annonce.url;
    
    return @"";
}

-(NSString *) nbAnnoncesWithType:(int) typeAnnonce
{
    
    NSString * name = [self nameType:typeAnnonce];
    
    for(TypeAnnonce * annonce in menu)
        if([annonce.intitule isEqualToString:name])
            return annonce.nb;
    
    return @"";
}

-(NSString *) nameType:(int)typeAnnonce{
    
    switch (typeAnnonce) {
        case TYPE_ANNONCE_BATEAU_A_MOTEUR :
            return @"Bateau à moteur";
            break;
        case TYPE_ANNONCE_VOILIER:
            return @"Voilier";
            break;
        case TYPE_ANNONCE_SEMI_RIGIDE:
            return @"Pneuma./Semi-Rigides";
            break;
        case TYPE_ANNONCE_MOTEUR:
            return @"Moteur Bateau";
            break;
        case TYPE_ANNONCE_PLACE_DE_PORT:
            return @"Place de port";
            break;
        case TYPE_ANNONCE_REMORQUES:
            return @"Remorques";
            break;
        case TYPE_ANNONCE_ACCESSOIRE:
            return @"Accessoires & Divers";
            break;
        case TYPE_ANNONCE_LOCATION:
            return @"Location";
            break;
            
    }
    
    return @"";
}

- (void) receiveDonneesMenu:(id)donnees
                   andType :(int)typeDonnees{
    
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
    menu = (NSArray *)donnees;
    [self positionnerVue];
}

- (void) receiveErreurMenu:(int)statut{
    // Faut faire quelque chose normalement
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

    UIAlertView *alert = [[UIAlertView alloc]
                          
                          initWithTitle:@"Erreur"
                          message:@"Erreur réseau : votre téléphone ne peut pas accéder aux informations"
                          delegate:self
                          cancelButtonTitle:@"Ok"
                          otherButtonTitles:nil];
    
    [alert show];
}
@end
